Creating and managing reference elements of deployable web archive files

ABSTRACT

In some embodiments a method includes creating a bookmark of a deployable web archives In some embodiments, the bookmark includes deployment and runtime information of current and prior invocations of the deployable web archive, at least one user- and/or author-defined external specified tag describing the deployable web archive, and/or reference/link/access information to the deployable web archives

BACKGROUND

1. Field of Invention

The present invention relates to executable web components, and more specifically to bookmarking deployable web archives.

2. Description of Related Art:

Conventional software application servers may include web portals. The Web portals allow partners, employees and customers to choose their user experience, with personalized applications based on role, context, actions, location, preferences and team collaboration needs. The web portals are deployable on one or more software application servers.

When searching for portlets to deploy on the software application servers, authorized end-users and administrators can search for portlet file names and/or descriptions of portlet functionality, then review the search results to find descriptions and linked archive files that match. Users and administrators can also send each other web archive files to deploy, or download these archive files from a variety of sites.

SUMMARY

According to an embodiment, a method includes creating a bookmark of a deployable web archive, wherein the bookmark includes deployment and runtime information of current and prior invocations of the deployable web archive, one or more external specified tag(s) describing the deployable web archive, the external specified tag(s) being editable by the creator of the tag, and reference/link/access information to the deployable web archives

According to another embodiment, a method includes creating a tag of the network-deployable executable components, wherein the tag includes activity information of the web executable component, the tag having a name and then displaying the tag name and at least a portion of the activity information in accordance with an authorization that is specified by a user that deployed the executable component.

According to yet another embodiment, a method includes displaying a tag control in a graphical user interface of a portal tab, and transmitting configuration options associated with the tag to a web service, the configuration options including a specification of the extent of sharing with a specified user group usage statistics of a user for the portlet.

According to still another embodiment, a method includes locating a bookmark of a web archive using a social bookmarking service and deploying the web archive from the bookmark in the social bookmarking service.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 depicts an embodiment of a method for bookmarking and tagging deployable web archive files;

FIG. 2 depicts an embodiment of a method for dynamically deploying a portal application from a bookmark;

FIG. 3 depicts an embodiment of a system for bookmarking and tagging deployable web archive files;

FIG. 4 depicts an embodiment of a portlet container in a system for bookmarking and tagging deployable web archive files described in FIG. 3;

FIG. 5 depicts an embodiment of a graphical user interface window with which a user may interact with one or more user portlet instances in a system for bookmarking and tagging deployable web archive files described in FIG. 3;

FIG. 6 depicts an embodiment of a graphical user interface display that includes a dynamic list of executable web components that have been bookmarked by a user;

FIG. 7 depicts an embodiment of a graphical user interface display that includes a dynamic list of information describing reference elements of other users;

FIG. 8 depicts an embodiment of a graphical user interface display that includes a list of most popular bookmarked executable web components;

FIG. 9 depicts an embodiment of a graphical user interface display that includes a list of detailed information of a bookmarked executable web component;

FIG. 10 depicts an embodiment of a graphical user interface display that includes a list of detailed information describing users that have bookmarked an executable web component; and

FIG. 11 depicts an embodiment of a general computer environment that may be used in connection with the system described in FIG. 3, portlet container in FIG. 4, the graphical user interfaces of FIGS. 5-10.

DETAILED DESCRIPTION

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

In the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments which may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the embodiments, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the scope of the embodiments. The following detailed description is, therefore, not to be taken in a limiting sense.

As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.

Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium can include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.

Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

With reference now to FIG. 1, a method 100 for bookmarking and tagging deployable web archive files is described. Bookmarks and tags are collectively referred to as reference elements. The web archive files are deployable in a runtime environment such as software application server, to a web site where the reference elements can be viewed and the content searched and used by other end-users.

In some embodiments, method 100 allows the user of a runtime environment such as software application server, to create a collection of social reference elements for the user's deployable archive files. The user of the runtime environment registers with a social bookmarking service delivered on a network (e.g. on the intranet or portal intranet) for the user to store bookmarked web archive files, add tags at the selection and by definition of the user, and designate individual reference elements as public, private, or group-based, according to membership of the user in groups facilitated by software tools such as external security engines that manage group membership on the network . The registration provides authorization based on membership of a viewer or user in a user-group. Group-restricted reference elements can be viewed by members of that group. Integration with an organizational group intranet can be included to automatically detect existing intranet groups. Visitors to the social bookmarking portlet site or social bookmarking web component can search for keywords tagged, a specific user's reference elements (given permission to view), or other criteria such as popularity and most recently deployed among a group in the network to see the portlet reference elements and classification schemes that registered users have created and saved. Users can quickly choose to deploy other user's tagged/bookmarked portlets/web archive files in their own portal environments by simply browsing to the reference element to link to the hosting site of that archive file.

Method 100 may include receiving one or more external specified tag(s), at block 102. The tag(s) describe a deployable web archive or other enterprise application. The tag(s) may be received from a user in which case the tag(s) may have been created by the user from which the tags(s) were received, or the tag(s) may be received from a system that performs method 100.

Examples of web archive files are Java Enterprise Edition archive (EAR) files, servlets, and portlets. Servlets are objects that extend the capabilities of applications hosted by the software application server and are accessed via a request-response programming model. A servlet may maintain state across many server transactions and receives a request and generates a response based on that request. Portlets are pluggable user interface components that are managed and displayed in a web portal. Portlets produce fragments of markup code that are aggregated into a portal page. Typically, following the desktop metaphor, a portal page is displayed as a collection of non-overlapping portlet windows, where each portlet window displays a portlet.

The tag(s) may be group-based tag(s) that describe a deployable web archive that is associated with a particular group. The group-based tag(s) may be collected and generated from individual statistics and access to individual participation in a group. For example, a Director of an organization can see which portlet is the most popular among direct-reporting employees based on the tag(s) uploaded to the site and statistics generated based on the most frequently tagged portlets by employees in a certain group.

Method 100 may include creating a reference element of the deployable web archive from the one or more external specified tag(s), at block 104. The reference element may include deployment and runtime information of current and prior invocations of the deployable web archive, one or more external specified tag(s) describing the deployable web archive, and reference, link and/or access information to the deployable web archives The one or more external specified tag(s) may be editable by the user from which the tag(s) were received. Accordingly, method 100 provides auto-generated reference elements about deployment usage of the deployable web archive or other enterprise application.

The deployment and runtime information may include refresh frequency, length of time since initial deployment, interactivity data such as hypertext markup language (HTML) fragment refresh in portlet, and/or identification of particular tabs and pages in the user's portal instance in which the files are deployed, etc. In some embodiments, method 100 supports bookmarking and tagging of enterprise web application usage of a central social bookmarking site.

Bookmarked files may be tagged both manually with user-defined keywords and also automatically with user-chosen usage information about the archive files. Method 100 allows users of a portal environment to tag and bookmark the enterprise applications (e.g. enterprise archive (EAR) files, servlets, and/or portlets) deployable in a portal environment.

In method 100, users may choose to include reference elements based on individual usage history, where these reference elements are generated by the usage statistics gathered automatically.

Method 100 may include updating or registering the reference element associated with a portlet with an entry for that portlet managed by a social bookmarking service, at block 106. The portlet may be a social bookmark portlet, which provides a user interface to the collection and organization of bookmarked portlets available on the network. The bookmark may be viewed and retrieved by other registered end-users to enable the other registered end-user to deploy their own instance of the deployable web archives The bookmarking site or web component can be included as a tab within the other registered end-user's portal instance. Registering the reference element with a portal at block 106 provides dynamic expression of the deployable web archive to bookmarking systems, including social bookmarking systems.

Social bookmarking is a method for Internet users to store, organize, search, and manage bookmarks of web pages on the Internet with the help of metadata. In a social bookmarking system, users save links to web pages that the users want to remember and/or share. The bookmarks are usually public, and can be saved privately, shared only with specified people or groups, shared only inside certain networks, or another combination of public and private domains. The specified people or groups can usually view these bookmarks chronologically, by category or tags, or via a search engine. Most social bookmark services encourage users to organize their bookmarks with informal tags instead of the traditional browser-based system of folders, although some services feature categories/folders or a combination of folders and tags. The social bookmark services also enable viewing bookmarks associated with a chosen tag, and include information about the number of users who have bookmarked them. Some social bookmarking services also draw inferences from the relationship of tags to create clusters of tags or bookmarks. Many social bookmarking services provide web feeds for the lists of bookmarks, including lists organized by tags. The web feeds allow subscribers to become aware of new bookmarks as they are saved, shared, and tagged by other users.

Method 100 may include searching a collection of social bookmarks using a social bookmarking service to locate the deployable web archive, at block 108 and method 100 may include identifying the deployable web archive as having a specific popularity rank, and recentness rankings for latest deployment and latest markup language fragment refresh among bookmarked portlets in a group, for a plurality of reference elements, at block 1 10. The tags pertaining to popularity and recentness may be determined from an analysis of a plurality of reference elements of a plurality of deployed web archives.

Method 100 may include updating the one or more external specified tag(s) based on usage of the deployable web archive, at block 1 12. The usage of the deployable web archive may be determined from monitoring the activity of the deployable web archives Thereafter, at block 104, the bookmark of the deployable web archive is regenerated or updated from the one or more updated external specified tag(s), at block 104. Updating the tag(s) at block 112 can be performed in response to a refresh event that is initiated by a system, in response to a timed event, such as a timer daemon that invokes the updating every hour, for example, and/or in response to user input that updates data that is pertinent to the network-deployable executable component.

Method 100 helps identify which web applications are being executed by other end-users. Method 100 also helps determine the usage information about the deployed applications or files of those end-users. In method 100, the end-users can monitor the popularity of a deployable archive file, such as a portlet.

In a particular example of method 100, a recently-promoted Director is preparing for a meeting with an executive manager of the Director in which all project milestone information will be reviewed. Direct-reporting subordinates of the Director and all product managers with teams of developers of the Director have each deployed a new milestone portlet which allows the developers to keep track, directly in their software application server portal instance, of the current status of their respective projects. As the project current status is updated, the data is updated on a server and different levels can be viewed according to access privileges. Without method 100, the newly promoted Director does not realize that this portlet exists, so the Director asks a technical assistant to prepare a report manually. The technical assistant now collects information manually to form a static report. However, in the performance of method 100, the Director merely visits the social bookmarking tab in a software application server portal instance of the Director. The Director navigates to the employee group of the Director and views the most popular tagged portlets which are deployed by employees of the Director. The Director sees that 7 out of 8 of the direct-reporting subordinates of the Director use a particular milestones portlet. This portlet has reference elements such as “team”, “report”, “progress” and “status.” The Director can now click on the socially bookmarked web application archive (WAR) file to automatically update portal content of the Director. The Director can then deploy the same portlet in the software application server portal instance, and view the data entered by direct-reporting subordinates of the Director in real-time. The Director can also view other portlets that direct-reporting subordinates of the Director have tagged. Deploying the bookmarked portlet results in an option to open the portlet within a home portal tab of the Director, or a new portal tab. The new portal tab that is created and opened to deploy this chosen portlet can bear the same name as one of the keywords tagged for the portal (e.g. the most popular tag for that portlet).

In a particular example of method 100, employees contribute new enterprise archive (EAR) and WAR files to community sites posted on an enterprise intranet and have privileges to customize and deploy portlets of their choosing in their software application server portal instances. Employees intend to use peer-contributed portlets. But not all of these portlets have gone through formal development processes and standardization checks. Users want to try the peer-contributed portlets, but are hesitant to trust the peer-contributed portlets. Method 100 provides recommendation folksonomies in which collaborative tagging, social classification, social indexing, and social tagging are used to collaboratively create and manage reference elements to annotate and categorize content. In folksonomies, metadata is generated not only by experts but also by creators and consumers of the content. Usually, freely chosen keywords are used instead of a controlled vocabulary. When a user wishes to deploy a new portlet, the user can now search the social bookmarking tab of the portal of the user to see if the peer-contributed portlet has been deployed by others. The user may feel more confident and secure in knowing that a large number of employees in the user's organization have deployed the portlet and have been executing the portlet consistently for several weeks.

With reference now to FIG. 2, a method 200 for dynamically deploying a portal application from a bookmark is described. Method 200 includes locating a bookmark of a web archive using a social bookmarking service, at block 202. The locating at block 202 may further include determining a most popular tag of the web archive from bookmarks by the social bookmarking service, thereby locating the most popular web archive provided by the social bookmarking service.

Thereafter, method 200 includes deploying the web archive from the bookmark of the web archive located by the social bookmarking service, at block 204.

With reference now to FIG. 3, a system 300 for bookmarking and tagging deployable web archive files is described. System 300 includes a portal application server 302 executing on a web application server 304. One example of the web application server 304 is the IBM Websphere® Application Server produced by IBM. The IBM Websphere® Application Server is a Java® 2 Platform Enterprise Edition (J2EE) server.

A number of portal instances 306 and 308, may execute on the portal application server 302. Each portal instance 308 may deploy one or more portlet container(s) 310. The portlet container 310 and deployment of portlet container(s) are described in greater detail in FIG. 4.

The portlet container 310 includes a tag control (shown in FIG. 5) that provides configuration options 312 for reference elements of a portlet of the portlet container 310. The configuration options 312 include a specification of the extent of sharing (making public) with a specified user group the usage statistics of the user for the portlet (not shown) in the portlet container 3 10. The configuration data source/host information 314, session data 316 and setting data 318 is transmitted to a web service 320 with which a reference element 322 is updated.

In system 300, reference element(s) 322 of deployable web archive files are made available via a directory, stored in a hosted database management system (DMS), enabled via a web service 320 which stores download locations for web archive files and updates reference element(s) 322 with the location information as well as tag data. The directory is made available as a portlet window that is available in a portlet container 310, which registered users may add to their portal application. Aggregated bookmark/reference element information may be stored in the DMS and relevant content for the user can be retrieved via queries using web services on the DMS. The directory may be stored as a collection of database tables in a DMS.

Tag usage data, tag keywords, and bookmark data can be stored as resource metadata in the form of an Extended Markup Language (XML) Metadata Interchange (XMI) schema, or a variant thereof, with associated .xmi files or variants thereof, included in the deployment descriptor directories (accompanying portlet.xml and web.xmi deployment descriptors). Once the xmi schema is included, real-time tag data can be stored in associated XML files, captured as part of the deployment cycle. Administration services for the captured bookmark and tag metadata originate from the software application server, or in another deployed portlet executing within the users runtime environment, such as a software application server environment.

With reference now to FIG. 4, a portlet container 400 includes an enterprise archive (EAR) file 402. The portlet container 400 in FIG. 4 is one example of the portlet container 310 in FIG. 3. The EAR file 402 is deployable from a portal instance (e.g. portal instance 308 in FIG. 3) from which a portlet is created. The EAR file 402 is a collection of Java archive (JAR), web archive (WAR) and enterprise Java Beans (EJB) file(s). A portlet EAR file 402 is a source for creation of a portlet 404. The author and/or owner of the portlet 404 may add reference elements to the portlet 404.

A portal instance 308 can include servlet(s) 406. Each servlet 406 can execute in a runtime environment (often Java-based) via a servlet engine (not shown in FIG. 4) which is also included in the web application server (e.g. 304 in FIG. 3). A portal runtime environment includes a servlet engine (not shown) and thus supports servlet(s) 406. Servlets 406 can be deployed in addition to, or instead of, portlets 404. Portlet settings 408 are deployable from the portlet 404 in creation of a concrete portlet 410.

The concrete portlet 410 is executable and includes data (e.g. settings) and executable program code. Portlet settings 408 are read/write accessible and persistent. The portlet settings 408 contain configuration parameters initially defined in a portlet deployment descriptor (not shown). The concrete portlet 410 is a portlet that is parameterized by the portlet settings 408. Many concrete portlets 410 can exist for each portlet 404. The use of concrete portlets 410 allows many instances of a portlet 404 to execute with different configurations, without creating extra portlet class instances. During a lifecycle of a single portlet 404, many concrete portlets 410 can be created and destroyed. No object explicitly represents the concrete portlet 410. The same concrete portlet 410 can be shared across many users. Each concrete portlet 410 is global, and in the absence of requirements for authorization, available for use by each user in the network environment. Portlet data 412 is deployable from the concrete portlet 410 in creation of a concrete portlet instance 414.

A concrete portlet instance 414 is a concrete portlet 410 that is parameterized by the portlet data 412. Many concrete portlet instances 414 can exist for each concrete portlet 410. Portlet data 412 stores persistent information for a portlet 404 that has been added to a page. For example, a user can edit a stock quotes portlet and save a list of stock symbols for the companies to track. The scope of the portlet data 412 depends on the scope of a page that the concrete portlet 410 is on.

When a concrete portlet 410 is on a group page, then the portlet data 412 contains data stored for the group of users. This is also the same for a group of users who have view access to the page. However, if users have edit access to the portlet 404 on a group page, then a new concrete portlet instance 414 is created for each user that edits the portlet 404. In this case, the portlet data 412 contains data for each user that edits the portlet 404. If a concrete portlet 410 is put on a user's page, then the portlet data 412 contains data for that user. Portlet session data 416 is used in creation of a user portlet instance 418.

A user portlet instance 418 is created after a user accesses a page that contains the portlet 404. When a user logs into the portal, the portal application server 302 creates one or more core objects for each of the user's portlets 404. Many user portlet instances 418 can exist for each concrete portlet instance 414. A user portlet instance 418 is a concrete portlet instance 414 that is parameterized by a single set of portlet session data 416. The portlet session data 416 stores transient information that is related to a single use of the portlet 404. Users directly interact with the user portlet instance 418. Each user of the user portlet instance 418 may add reference element(s) (such as reference element 322 in FIG. 3) to the user portlet instance 418. User reference elements and the author/owner reference elements provide an aggregate tagging of the portlet 404.

In regards to the deployment of portlet container(s), a portal application server (e.g. portal application server 302) often includes a portlet servlet 406 as a core component. The portlet servlet 406 receives browser requests and dispatches particular JavaServer Pages (JSPs) that dynamically generate hypertext markup language (HTML), extended markup language (XML) or other types of documents in response to a web client request to build the requested portal page. Information regarding the layout and configuration of the portal page is identified by a universal resource indicator (URI) given in the request. The JSPs issue requests for web components, corresponding to the portlets to deploy, which are then invoked as portlet servlet(s) 406. The portlet servlets 406 have service methods which can be translated by the portal application server (e.g. portal application server 302) to determine the correct way to render the portlet servlet(s) 406 on the portal page. The rendering information is typically included in the code of the portlet.

From a graphical user interface (GUI) window 420, a user may interact with one or more user portlet instances 418 in the portlet container 3 10. The GUI window 420 is described in greater detail in FIG. 5.

With reference now to FIG. 5, graphical user interface (GUI) portlet window 500 includes a portal tab with portlet window markup fragments 502, 504, 506, and 508 of four user portlet instances (such as user portlet instance 418 in FIG. 4). A portlet (e.g. portlet 404 in FIG. 4) that is associated with the user portlet instances (e.g. user portlet instance 418) may be local or the portlet may be remote. The remote portlets may be installed remotely, and consumed locally, as in an application service provider (ASP). A control in each of the portlet window markup fragments provides configuration control over tag(s) of the portlet (e.g. portlet 404). For example, GUI portlet window 500 includes a control panel 510 that further includes a tag control 512 that provides configuration options (e.g. configuration options 314) for reference elements of the portlet 404. The GUI portlet window 500 is one example of the GUI window 420 in FIG. 4.

A social bookmarking web component or portlet, deployable as 502, 504, 506, or 508 in a portal tab may be used to search for archive files that are available to be deployed. The social bookmarking web component or portlet also displays the current users bookmarked and tagged content. Searches may be performed based on specific keywords matched to reference elements, statistics (e.g. most popular portlet deployed among all participating users, most recently deployed, most recently refreshed) as well as group usage information, for example most popular among the users in a particular group.

Buttons or other GUI user event-handling components (e.g. tag control 512) in the portlet frame interface provide a function of adding the portlet to reference elements: once pressed, the name of the deployable portlet, the location of the download site, and any reference elements the user wishes to enter can be added to the usage activity information of the reference element. Additional usage information about the web archive files can be added (eg. “deployed between Jul. 1, 2007 and Jul. 6, 2007, deployed 8 times as of Jul. 29, 2007, etc). The tab in the portal corresponding to the bookmarked web archive files that are tagged, includes options to customize and group reference elements and categorize web archives further.

With reference now to FIG. 6, a graphical user interface (GUI) display 600 includes a dynamically created list 602 of executable web components that have been bookmarked by a user. The user can view the list 602 of executable web components 604, 606 and 608 as a separate web component, or as part of a larger web component such as a portlet deployable in an environment such as a portal of a particular user. In some embodiments, the GUI display 600 is displayed as a part of a larger web component deployed in a portal of a particular user.

The GUI display 600 displays for each of the listed executable web components 1) a name 610 of the executable web component, 2) system-generated information about that web component (e.g. an installation date 612 of the web component and a most recent refresh date 614 of the web component) and 3) reference elements 616 of the executable web component. The GUI display 600 also displays buttons 618 to “remove” the reference element, and to “edit reference elements” for each of the listed executable web components. The “edit reference elements” button launches a window, which displays editable tag information by both the user and the author of the executable web component. The user may add, edit, and remove reference elements, and edit or remove the reference elements 616 originally associated with the executable web component by the creator of the executable web application.

If the user is interested in more detailed information about a bookmarked executable web component, the user may click on the list item of the executable web component. In response to clicking on the list item of the executable web component, for example items 604, 606, and 608, detailed information about the executable web component is displayed, in another section of the current web component, as described in FIG. 9 and 10. Clicking on list items in any of FIGS. 6, 7 or 8 causes FIGS. 9 or 10 to be displayed. In the example of FIG. 6, the list item names 604, 606, and 608 are hyperlinks, but in other implementations, the list item names 604, 606, and 608 may be collapsible items. When clicked, more information can be displayed underneath the item, adjusting the layout of the other list items, or in a pop-up window or other view.

As shown above, the data items displayed for each executable web component list in the list 602 includes the fields: name 610, date installed 612, most recent refresh date 614, and reference elements 616 and can be sorted by clicking on the arrow icon 620 of the header 622 of the item as the sort criteria in ascending or descending order. The arrow icon 620 operates to toggle the ordering of the list 602 from the ordering of the item associated with the arrow icon 620. The list 602 in the example in FIG. 6 is sorted using the criteria for most recent refresh 614 in descending (reverse chronological) order from most recent to least recent. The user may add other fields to include information such as “Author of web component” (not shown), “Rating” (not shown), and “Popularity” (not shown) of the bookmarked web component in the same list. The set of lists that is displayed and the fields of information within each list are customizable by a user for an executable web component. The user may remove, add, and reorder lists, as well as fields within each list, in the user interface of the web component on which they are displayed. The user may also customize the lists and information therein by pressing the “customize” button (or other GUI component). Pressing the “customize” button launches a window (or other view in the GUI) with menu options (or other selection components in the GUI), for each list that may be included on the user's web component. An executable web component can include reference elements created by a particular user, reference elements created by other users in groups associated the user, most popular, etc.

In GUI display 600, clicking on the arrow 624 in the top bar 626 launches a window (not shown) or other view in the GUI that contains a menu (not shown) or other selection components in the GUI that includes controls to allow changes in the properties of the web component, or removal of the web component, to support customization of the list 602.

FIG. 7 and 8 show separate lists of items that can be viewed in addition to FIG. 6.

With reference now to FIG. 7, a graphical user interface (GUI) display 700 a dynamic list 702 of information describing reference elements of other users. List 702 displays a list of groups of portlets 704, 706 and 708 or other executable web components of other users. The groups of portlets 704, 706 and 708 of the list 702 are all registered by an executable web component bookmarking service on a network. The groups of portlets 704, 706 and 708 of the list 702 are those that users registered in groups on the network in which the user is also a member have bookmarked. List 702 is sorted or organized by groups in which the current user is also a member. Similar to FIG. 6, each of the portlets or executable web component in the list 702 includes a name 710 of the executable web component, system-generated information about that web component, (e.g. total number 712 of users that have created reference elements) and reference elements 714 of the executable web component. A higher-level menu of groups 704, 706 and 708 is displayed first. Each of the groups may be expanded to display a list 716 of individual executable web components that have been bookmarked by one or more members of each group. Clicking on an arrow icon 718 that is located at the beginning of the group name activates expansion. Once a list is expanded, the list can be contracted in the same manner by clicking the same arrow icon 718. In this example, the user has expanded the “Research Group” heading which displays three bookmarked executable web components that have been bookmarked by one or more users in the “Research Group” group. After clicking on the “Group Milestones Portlet” list item, detailed information about that executable web component is displayed in another section of the current web component, as shown in FIG. 9 and FIG. 10.

As in the example of FIG. 7, the set of lists shown on the web component such as reference elements for a user (shown in FIG. 6), reference elements by other users in your groups (shown in FIG. 7), most popular (shown in FIG. 8), and within each list the fields of information (e.g. name 710, number of users that have created reference elements 712, reference elements 714), is customizable. The user may remove, add, and reorder lists, as well as fields within each list, in the user interface of the web component on which the lists are displayed. The user may also customize the lists and information therein by pressing a “customize” button (shown in FIG. 6) which launches a window with menu options for each list that may be included on the user's web component. The arrow icons (e.g. arrow icon 718) in FIG. 7 for expanding/contracting a list are similar to arrow icon 620 in FIG. 6 used for sorting.

In some embodiments, a different arrow icon 718 for “expanding” is used in FIG. 7 from the arrow icon 620 used for “sorting” in FIG. 6. In these embodiments, lists 602 in FIG. 6 and 702 in FIG. 7 save “dynamic UT components” to facilitate visual organization for the user.

With reference now to FIG. 8, a graphical user interface (GUI) display 800 includes a list 802 of most popular bookmarked executable web components. The list 802 presents a list of executable web components, such as portlets, that have been registered by other users using an executable web component bookmarking service on a same network. The list 802 includes a name 804 of the executable web component, system-generated information about that web component (e.g. total number of users that have created reference elements 806) and reference elements for the executable web component. In this case, the list is ordered by name 804 in ascending order and is not limited to group information.

To view more detailed information about a bookmarked executable web component, the user may click on the list item (e.g. 810 or 812) of the component and thereafter, detailed information about this executable web component is displayed in another section of the current web component (see example shown in relationship of FIG. 7 to FIG. 9 and FIG. 10.

As in the example of FIG. 8, the set of lists displayed for the web component, such as reference elements for a user (shown in FIG. 6), reference elements by other users in groups of the user (shown in FIG. 7), and most popular (shown in FIG. 8), and within each list the fields of information (e.g. name 804, total number of users that have created reference elements 806, reference elements 808) is customizable. The user may remove, add, and reorder lists, as well as fields within each list, in the user interface of the web component on which they are displayed. The user may also customize the lists and information therein by pressing a “customize” button (not shown in FIG. 8). Pressing the “customize” button (e.g. arrow 624 in FIG. 6) launches a window with menu options for each list that may be included on the user's web component.

With reference now to FIG. 9, a graphical user interface (GUI) display 900 includes a list 902 of detailed information of a bookmarked executable web component. GUI display 900 is displayed after a user has clicked on an item in the list 716 of individual executable web components in FIG. 7 (or 604, 606, or 608 in FIG. 6; or 810, or 812 in FIG. 8). For example, GUI display 900 is displayed after a user has clicked on the “Group Milestones Portlet” list item 904 in the list 716 of individual executable web components in FIG. 7.

List 902 displays detailed information about the users who bookmarked the subject bookmarked executable web component. List 902 also displays reference elements and usage of the “Group Milestones Portlet” component of FIG. 7. The list 902 includes sections on statistics 906, tag cloud 908, and a deploy portlet button 910. All sections appear under the heading 904 of the larger section for the executable web component of interest, e.g. “Group Milestones Porlet.”

The statistics section 906 in list 902 includes system-generated and user-generated statistics about the “Group Milestones Portlet” including system-generated information such as: average refresh rate 912 of the executable web component, and popularity 920. In the example of FIG. 9 popularity 920 is the rank in terms of number of people who have bookmarked and deployed the executable web component, where the component deployed the most out of all components within the system is ranked highest. Other system-generated information includes the number of users 916 who have bookmarked the executable web component and have simply installed the executable web component but are not currently deploying or executing the executable web component, versus the number of user 918 who have bookmarked the executable web component and are actively deploying or executing the executable web component. The statistics section 906 also contains a system-aggregated overall rating 914 of user-given ratings of the bookmarked executable web component.

The tag cloud section 908 includes all current reference elements assigned by all the users who have bookmarked the executable web component. The assigned current reference elements include the default reference elements given by the creators of the executable web component if users chose not to edit those reference elements. The size of the tag on the display is proportional to the collective number of citations and references to that tag by all users who have bookmarked and tagged the executable web component.

In some embodiments, clicking on the deploy portlet button 910 deploys the executable web component in a networked environment of the user, such as deploying the portlet in the current portal of the user making the request. In some embodiments, the title of the button 910 is set to match or correspond to the content that is associated with the button 910. Examples of titles that correspond to the content associated with the button include “Deploy Web Component” or “Deploy Gadget.” The arrow 922 on the button 910 indicates that a window will be launched upon clicking/pressing of the button 910 to provide a selection to the user to choose between deployment destination options for the executable web component (e.g. in the “Home tab” of the user portal, or the “work section” of the user portal”) in the environment of the user. Other components or interaction techniques may be used in the GUI instead of a button to facilitate deployment of the portlet of interest. For example, a direct manipulation technique may be used to select deployment of the “Group Milestones Portlet” 904 to an area of the portal of the user where the user intends to deploy the portlet by dragging the name or a graphical icon of the “Group Milestones Portlet” 904 to the area of the portal of the user where the user intends to deploy the portlet. Methods for deploying the executable web component can also be presented to the user and selected by the user in GUI display 900. The methods include remote consumption of the executable web component or actual file copy of the executable from one user's directory on a distributed server to the target user's directory.

With reference now to FIG. 10, a graphical user interface (GUI) display 1000 includes a list 1002 of detailed information describing users that have bookmarked an executable web component. GUI display 1000 is displayed after a user has clicked on an item in the list 716 of individual executable web components in FIG. 7. For example, GUI display 1000 is displayed after a user has clicked on the “Group Milestones Portlet” list item in the list 716 of individual executable web components in FIG. 7. In some embodiments, the list 902 in FIG. 9 and list 1002 in FIG. 10 are combined into one displayed list (not shown).

List 1002 includes a number of items of each listed user. The items include the name 1004 of the user that bookmarked the executable web component, and system-generated information about that web component such as the current deployment status 1006 (“currently deployed” or “currently installed”) and a date/timestamp of 1008 of a last refresh of the executable web component. Reference elements 1010 for the executable web component are also included in the list 1002.

Some embodiments of list 1002 include a “Usage History” button 1012 that upon clicking of the button 1012 will cause the system to display system-generated usage information associated with the bookmarking user that the user has elected to distribute. Thus the “usage history” button 1012 provides a display of how much the bookmarking user uses the executable web component. Each bookmarking user has control over which system-generated and user-generated reference elements are distributed, and with which user groups. For example, the user may choose to rate or not rate the bookmarked executable web component (as shown above with “N/A” 814 for “Linda Macon,” “Steve King” and “Hong Lee”). The user may choose not to distribute usage information such as refresh rate (as shown above with N/A for “Linda Macon” and “Hong Lee”). A user may also choose to distribute whether or not the executable web component is deployed or merely installed but not necessarily deployed in his or her portal. While the example shown uses “N/A” for clarity, usage information about a bookmarker, which the bookmarking user chooses not to distribute may also be rendered as a blank in the user interface.

In some embodiments, clicking on an item in the list 1002 of bookmarking users displays more information about that bookmarking user, in a format similar to the customizable list 602 shown in FIG. 6. The displayed information includes the reference elements that were created by that bookmarking user the information includes system-generated and user-generated information describing each bookmarked executable web component. In some embodiments, the information is displayed in available space in the same web component view. In some embodiments, the information is displayed in a new tab in the user's web component environment. In some embodiments, the information is displayed as a replacement of the current information displayed in the current web component (e.g. “Group Milestones Portlet” information in FIG. 9 and FIG. 10) with a “back button.”

In some embodiments, an executable web component can be bookmarked from a user's executable web component environment. For example, a portlet deployed in a user's portal can be bookmarked. In some embodiments, reference elements may be specified or identified as visible to registered users on the same executable web component environment network, where the visibility may be assigned by group membership. More specifically, a window launched in response to the user pressing a “bookmark” button, the window having options for making visible system-generated usage information as well as manually defined ratings and reference elements for that executable web component, for each group of which the current user is member, as well as all users registered with the bookmarking service on the network.

In some embodiments a contextualized “Deploy Portlet” feature may also be implemented. The “Deploy Portlet” feature includes selecting/interacting with a representation of an executable web component to automatically deploy the executable web component and navigating executable web components to automatically deploy the executable web components, in community-oriented, group-situated, and context-sensitive environments for navigating available executable web components.

FIGS. 1-8 provide bookmarking of executable web components and lists of executable web components that have been bookmarked by others (e.g. registered users or specific groups).

The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

With reference now to FIG. 11, is an example of a general computer environment 1100, in accordance with an embodiment of the disclosed subject matter. The general computer environment 1100 includes a computation resource 1102 capable of implementing the processes described herein. It will be appreciated that other devices can alternatively used that include more components, or fewer components, than those illustrated in FIG. 11.

The illustrated operating environment 1100 is only one example of a suitable operating environment, and the example described with reference to FIG. 11 is not intended to suggest any limitation as to the scope of use or functionality of the embodiments of this disclosure. Other well-known computing systems, environments, and/or configurations can be suitable for implementation and/or application of the subject matter disclosed herein.

The computation resource 1102 includes one or more processors or processing units 1104, a system memory 1106, and a bus 1108 that couples various system components including the system memory 1106 to processor(s) 1104 and other elements in the environment 1 100. The bus 1108 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port and a processor or local bus using any of a variety of bus architectures, and can be compatible with SCSI (small computer system interconnect), or other conventional bus architectures and protocols.

The system memory 1106 includes nonvolatile read-only memory (ROM) 1110 and random access memory (RAM) 1112, which can or cannot include volatile memory elements. A basic input/output system (BIOS) 1114, containing the elementary routines that help to transfer information between elements within computation resource 1102 and with external items, typically invoked into operating memory during start-up, is stored in ROM 1110.

The computation resource 1102 further can include a non-volatile read/write memory 1116, represented in FIG. 11 as a hard disk drive, coupled to bus 1108 via a data media interface 1117 (e.g., a SCSI, ATA, or other type of interface); a magnetic disk drive (not shown) for reading from, and/or writing to, a removable magnetic disk 1120 and an optical disk drive (not shown) for reading from, and/or writing to, a removable optical disk 1126 such as a CD, DVD, or other optical media.

The non-volatile read/write memory 1116 and associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computation resource 1102. Although the exemplary environment 1100 is described herein as employing a non-volatile read/write memory 1116, a removable magnetic disk 1120 and a removable optical disk 1126, it will be appreciated by those skilled in the art that other types of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, FLASH memory cards, random access memories (RAMs), read only memories (ROM), and the like, can also be used in the exemplary operating environment.

A number of program modules can be stored via the non-volatile read/write memory 1116, magnetic disk 1120, optical disk 1126, ROM 1110, or RAM 1112, including an operating system 1130, one or more application programs 1132, other program modules 1134 and program data 1136. Examples of computer operating systems conventionally employed include the LINUX® operating system, and others, for example, providing capability for supporting application programs 1132 using, for example, code modules written in the C++® computer programming language.

A user can enter commands and information into computation resource 1102 through input devices such as input media 1138 (e.g., keyboard/keypad, tactile input or pointing device, mouse, foot-operated switching apparatus, joystick, touchscreen or touchpad, microphone, antenna etc.). Such input devices 1138 are coupled to the processing unit 1104 through a conventional input/output interface 1142 that is, in turn, coupled to the system bus. A monitor 1150 or other type of display device is also coupled to the system bus 1108 via an interface, such as a video adapter 1 152.

The computation resource 1102 can include capability for operating in a networked environment using logical connections to one or more remote computers, such as a remote computer 1 160. The remote computer 1160 can be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computation resource 1102. In a networked environment, program modules depicted relative to the computation resource 1102, or portions thereof, can be stored in a remote memory storage device such as can be associated with the remote computer 1160. By way of example, remote application programs 1162 reside on a memory device of the remote computer 1160. The logical connections represented in FIG. 11 can include interface capabilities, e.g., such as interface capabilities 1452 (FIG. 14) a storage area network (SAN, not illustrated in FIG. 11), local area network (LAN) 1172 and/or a wide area network (WAN) 1174, but can also include other networks.

Such networking environments are commonplace in modern computer systems, and in association with intranets and the Internet. In certain embodiments, the computation resource 1102 executes an Internet Web browser program (which can optionally be integrated into the operating system 1130), such as the “Internet Explorer®” Web browser manufactured and distributed by the Microsoft Corporation of Redmond, Wash.

When used in a LAN-coupled environment, the computation resource 1102 communicates with or through the local area network 1172 via a network interface or adapter 1176. When used in a WAN-coupled environment, the computation resource 1102 typically includes interfaces, such as a modem 1178, or other apparatus, for establishing communications with or through the WAN 1174, such as the Internet. The modem 1178, which can be internal or external, is coupled to the system bus 1108 via a serial port interface.

In a networked environment, program modules depicted relative to the computation resource 1102, or portions thereof, can be stored in remote memory apparatus. It will be appreciated that the network connections shown are exemplary, and other means of establishing a communications link between various computer systems and elements can be used.

A user of a computer can operate in a networked environment 1400 using logical connections to one or more remote computers, such as a remote computer 1160, which can be a personal computer, a server, a router, a network PC, a peer device or other common network node. Typically, a remote computer 1160 includes many or all of the elements described above relative to the computer 1100 of FIG. 11.

The computation resource 1102 typically includes at least some form of computer-readable media. Computer-readable media can be any available media that can be accessed by the computation resource 1102. By way of example, and not limitation, computer-readable media can comprise computer storage media and communication media.

Computer storage media include volatile and nonvolatile, removable and non-removable media, implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules or other data. The term “computer storage media” includes, but is not limited to, RAM, ROM, EEPROM, FLASH memory or other memory technology, CD, DVD, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other media which can be used to store computer-intelligible information and which can be accessed by the computation resource 1102. Communication media typically embodies computer-readable instructions, data structures, program modules or other data, represented via, and determinable from, a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal in a fashion amenable to computer interpretation. By way of example, and not limitation, communication media include wired media, such as wired network or direct-wired connections, and wireless media, such as acoustic, RF, infrared and other wireless media. The scope of the term computer-readable media includes combinations of any of the above. 

1. A method comprising: creating a bookmark of a deployable web archive, wherein the bookmark includes deployment and runtime information of current and prior invocations of the deployable web archive, at least one external specified tag describing the deployable web archive, and reference/link/access information to the deployable web archive.
 2. The method of claim 1, further comprising: registering the bookmark with an entry for the deployable web archive, the deployable web archive being managed by a social bookmarking service.
 3. The method of claim 2, further comprising: searching a collection of social bookmarks using a social bookmarking service to locate the deployable web archive.
 4. The method of claim 1, further comprising: receiving the at least one external specified tag describing the deployable web archive.
 5. The method of claim 1, further comprising: receiving from a user the least one external specified tag describing the deployable web archive.
 6. The method of claim 1, further comprising: receiving from a system the least one external specified tag describing the deployable web archive.
 7. The method of claim 1, further comprising: updating the at least one external specified tag describing the deployable web archive based on usage of the deployable web archive.
 8. The method of claim 1, further comprising: identifying the deployable web archive in response to a specific popularity rank, recentness rankings for latest deployment and latest markup language fragment refresh among bookmarked portlets in a plurality of deployed web archives.
 9. The method of claim 1, wherein the at least one external specified tag describing the web archive further comprises: at least one external specified group-based tag describing the web archive.
 10. A computer program product for managing a network-deployable executable component, the computer program product comprising: a computer usable medium having computer usable program code embodied therewith, the computer usable program code comprising: computer usable program code configured to: create a tag of the network-deployable executable component, wherein the tag includes activity information of the web executable component, the tag having a name; and display the tag name and at least a portion of the activity information in accordance with an authorization that is specified by a user that deployed the executable component.
 11. The computer program product of claim 10, wherein the computer usable program code configured to create the tag of the network-deployable executable component is further configured to: create the tag of the network-deployable executable component in response to a second user operating a graphical user interface that graphically represents the network-deployable executable component in a portal page of the second user, in which the second user selects a graphical representation of the network-deployable executable component from the portal page for deployment on another page of the second user.
 12. The computer program product of claim 10, wherein the computer usable program code configured to create the tag of the network-deployable executable component is further configured to: create the tag of the network-deployable executable component in response to a second user operating a graphical user interface that graphically represents the network-deployable executable component in a list of network-deployable executable components, in which the second user selects a graphical representation of the network-deployable executable component from the list for deployment on a portal page of the second user.
 13. The computer program product of claim 10, wherein the authorization further comprises: an authorization based on membership of a viewer in a user-group.
 14. The computer program product of claim 10, wherein the tag further comprises: a tag having user-defined metadata describing the network-deployable executable component.
 15. The computer program product of claim 10, wherein the tag further comprises: a bookmark having a location identifier of the network-deployable executable component.
 16. The computer program product of claim 10, wherein the activity information of the network-deployable executable component further comprises: deployment and runtime information of current and prior invocations of the deployable web archive, at least one external specified tag describing the deployable web archive, and reference/link/access information to the deployable web archive.
 17. The computer program product of claim 10, wherein the computer usable program code is further configured to: update the tag of the network-deployable executable component in response to a refresh event.
 18. The computer program product of claim 10, wherein the computer usable program code is further configured to: update the tag of the network-deployable executable component in response to a timed event.
 19. The computer program product of claim 10, wherein the computer usable program code is further configured to: update the tag of the network-deployable executable component in response to user input that updates data that is pertinent to the network-deployable executable component.
 20. The computer program product of claim 10, wherein the network-deployable executable component further comprises: a portlet.
 21. A computer program product for managing a portlet, the computer program product comprising: a computer usable medium having computer usable program code embodied therewith, the computer usable program code comprising: computer usable program code configured to: display a tag control in a graphical user interface of a portal page; and transmit configuration options associated with the tag control to a web service, the configuration options including a specification of the extent of sharing with a specified user group usage statistics of a user for the portlet.
 22. The computer program product of claim 21, wherein the usage statistics of a user for the portlet further comprises: deployment and runtime information of current and prior invocations of the portlet by the user, at least one external specified tag describing the portlet, and link information to the portlet.
 23. A system comprising: a component operable to locate a bookmark of a web archive using a social bookmarking service; and a component operable to deploy the web archive from the bookmark of the web archive retrieved by the social bookmarking service.
 24. The system of claim 23, wherein the component that is operable to locate a bookmark of a web archive using a social bookmarking service further comprises: a component operable to determine specific popularity rank, recentness rankings for latest deployment and latest markup language fragment refresh among bookmarked portlets in a group retrieved by the social bookmarking service.
 25. The system of claim 23, wherein the web archive further comprises: a portlet. 